home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #061 (1990-04)(Amiga User Group Deutschland e.V.).zip
/
Franz PD Disk #061 (1990-04)(Amiga User Group Deutschland e.V.).adf
/
Öko
/
ÖKO.Quelltext
< prev
next >
Wrap
Text File
|
1989-07-02
|
68KB
|
1,513 lines
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! !
! ÖKO V 0.9 Norbert Ellert, 3208 Giesen, Meisenweg 24 a !
! !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 35. Änderung vom 23.4.89
! -------------- Datas fÜr Gerichte und je 7 Zutaten ---------------------
DATA "Tomatensuppe mit Knoblauchbaguette","geschälte Tomaten","SuppengrÜn","Beinscheibe","Reis","Baguette","",""
DATA "Sauerkrauteintopf mit WÜrstchen","Sauerkraut","Bratwurst","Kartoffeln","Zwiebeln","saure Sahne","",""
DATA "Königsberger Klopse","Kartoffeln","Mett","Zwiebeln","Brötchen","Kapern","Pfefferkörner","Lorbeerblatt"
DATA "Pfannkuchen","Milch","Eier","Mehl","","","",""
DATA "Nudeln mit Tomatensoße","Nudeln","Tomatenmark","Zwiebeln","Schinkenspeck","","",""
DATA "Russischer Hackfleischtopf","Mett","saure Sahne","Lauch","Zwiebeln","Ketchup","Senf",""
DATA "Bratkartoffeln mit Hering","Bratheringe","Kartoffeln","Zwiebeln","","","",""
DATA "Griesschnitten mit Apfelmus","Gries","Milch","Zucker","Eier","Apfelmus","Paniermehl",""
DATA "Schweinefilet im Blätterteig","Schweinefilet","Zwiebeln","Schinkenspeck","Eier","Blätterteig","",""
DATA "Linsensuppe mit Rauchenden","Linsen","Kartoffeln","SuppengrÜn","klare BrÜhe","Rauchenden","",""
DATA "Rosenkohlauflauf","Rosenkohl","gekochter Schinken","geriebener Käse","Creme fraiche","","",""
DATA "Mettklöße mit Kartoffelbrei/Bohnen","Mett","Kartoffeln","Eier","Zwiebeln","Bohnen","",""
DATA "Puffer mit Zucker und Apfelmus","Kartoffeln","Möhren","Zwiebeln","Mehl","Apfelmus","Zucker",""
DATA "Käsepuffer","Kartoffeln","Möhren","Zwiebeln","Mehl","Emmentaler","",""
DATA "Kasseler mit Sauerkraut und Klößen","Kasseler","Kartoffelklöße","Sauerkraut","","","",""
DATA "Schweinebraten mit Semmelknödeln","Schweinebraten","Semmelknödel","","","","",""
DATA "Milchreis mit Apfelmus","Milch","Milchreis","Apfelmus","Zimt","Zucker","",""
DATA "Kartoffelsuppe mit Toast","Kartoffeln","Porree","klare BrÜhe","Sahne","Toastbrot","",""
DATA "Gulasch mit Nudeln und Salat","Gulasch","Nudeln","Champignons","Tomaten","Zwiebeln","Salat",""
DATA "Kartoffelbrei mit RÜhrei und Spinat","Eier","Mehl","Milch","Kartoffeln","Spinat","",""
DATA "Puterkeule mit Reis und Salat","Puterkeule","Reis","Salat","","","",""
DATA "Nudeln mit Mettsoße","Nudeln","Mett","Zwiebeln","Tomatenmark","saure Sahne","",""
DATA "Hähnchen mit GemÜsereis","Hähnchen","Reis","Paprika","Tomaten","Zwiebeln","",""
DATA "Falscher Hase","Mett","Zwiebeln","Eier","Senf","Porree","Möhren","Kartoffeln"
DATA "Ötti`s gute Hamburger","Sesambrötchen","Rindermett","Ketchup","Salat","Mayonaise","Röstzwiebeln",""
DATA "Eierreis mit Pilzen","Eier","Reis","Zwiebeln","Champignons","geriebener Käse","",""
DATA "Rinderbraten mit Klößen und Rotkohl","Rinderbraten","Kartoffelklöße","Rotkohl","","","",""
DATA "Blätterteig-Pirogge","Blätterteig","Mett","Gurken","Schafskäse","Eier","Dill","Senf"
DATA "Erbsensuppe mit Grießklößchen","Erbsen","Beinscheibe","SuppengrÜn","Grieß","Milch","Eier",""
DATA "Sauerkrautsuppe","Sauerkraut","klare BrÜhe","Sahne","Kasseler","","",""
DATA "Nudeln mit Schinken und Sahnesoße","Nudeln","Schinken","Sahne","","","",""
DATA "Braunkohl mit Bregenwust","Braunkohl","Schmalz","Zwiebeln","Senf","Bregenwurst","",""
DATA "Ötti`s gute Pizza","Mehl","Öl","Schinken","Champignons","geriebener Käse","geschälte Tomaten",""
DATA "Bratwurst m. Kartoffelbrei/Broccoli","Bratwurst","Kartoffeln","Broccoli","","","",""
DATA "Risi-Bisi mit Salat","Reis","Erbsen","gekochter Schinken","Zwiebeln","klare BrÜhe","Salat",""
DATA "Überbackene Champignonkoteletts","Koteletts","Champignons","geriebener Käse","Paniermehl","Sahne","",""
DATA "TÜrkische Hacksteaks mit Reis","Mett","Schafskäse","Reis","Zwiebeln","","",""
DATA "Strammer Max","Schinken","Brot","Eier","","","",""
DATA "SteckrÜbeneintopf","SteckrÜben","Schweinefleisch","SuppengrÜn","Kartoffeln","","",""
DATA "Nudelauflauf","Nudeln","Mett","Tomaten","Eier","Milch","Paniermehl","Margarine"
DATA "Reis mit HÜhnerfleisch","Reis","Hähnchen","Zwiebeln","","","",""
DATA "Pfannkuchen m. ChampignonfÜllung","Champignons","Eier","Milch","Mehl","","",""
DATA "Fischstäbchen mit Pommes","Fischstäbchen","Pommes Frites","Ketchup","Remoulade","","",""
DATA "Kohlrouladen","Wirsingkohl","Mett","Zwiebeln","Eier","Kartoffeln","",""
DATA "Pfannkuchen mit PutenfÜllung","Milch","Eier","Mehl","Lauchzwiebeln","Putenbrust","Sojasoße","Sojasprossen"
DATA "Porree-Pizza","Porree","Schmelzkäse","Hefe","Cabanossi","Tomaten","",""
DATA "Senfeier mit Pellkartoffeln","Senf","Eier","Kartoffeln","","","",""
DATA "ErbspÜrree-Auflauf","ErbspÜrree","Mett","klare BrÜhe","Zwiebeln","","",""
DATA "SÜßer Reisauflauf","Milchreis","Milch","Eier","Vanillezucker","Butter","",""
DATA "Pfannkuchen mit PflaumenfÜllung","Eier","Milch","Mehl","Pflaumen","Pflaumenmus","Zimt",""
DATA "SteckrÜben mit Frikadellen","SteckrÜben","Mett","Zwiebeln","","","",""
DATA "Gebackener Camembert","Camembert","Toast","Paniermehl","Preiselbeeren","","",""
DATA "Bratwurst mit Kartoffelsalat","Bratwurst","Kartoffeln","Gurken","Zwiebeln","Majonaise","Fleischsalat",""
DATA "Rosenkohlsuppe","Rosenkohl","klare BrÜhe","Creme fraiche","","","",""
DATA "Tiroler Leber","Leber","Zwiebeln","Ketchup","saure Sahne","Schinkenspeck","",""
DATA "Bratkartoffeln mit Ei","Karoffeln","Eier","Zwiebeln","","","",""
DATA "Eisbein mit Sauerkraut","Eisbein","Sauerkraut","Zwiebeln","Honig","Wacholderbeeren","Kartoffeln","Senf"
DATA "Hähnchenragout mit Reis","Reis","Hähnchen","Sojasprossen","klare BrÜhe","saure Sahne","",""
DATA "Nudeltortellini mit Salat","Salat","Nudeln","geriebener Käse","Eier ","Milch","Creme fraiche",""
DATA "Vorschlagsliste beginnt von vorn !","","","","","","",""
DATA "*" ! Endekennzeichnung fÜr z.Zt. 60 Gerichte und Zutaten
! ----------------------- Datas fÜr Waren --------------------------------
! --- Shopingzone ---
DATA "Film abgeben","Film abholen","Leergut abgeben","Reinigung","Schuster"
! --- Wurst,Fleisch,GeflÜgel ---
DATA "Mett","Aufschnitt","Streichwurst","Cabanossi","Schinken","Bauchfleisch"
DATA "Fleischwurst","Hähnchen"
! --- Käsetheke ---
DATA "Schafskäse","Gouda","Emmenthaler","Bavaria Blue"
! --- Obst und GemÜse
DATA "SuppengrÜn","Salat","Bananen","Äpfel","Apfelsinen","Mandarinen","Ananas"
DATA "Kartoffeln","GrÜne Gurke","Tomaten","Petersilie","Kresse","Porree"
DATA "SaisongemÜse","Rosenkohl","Wirsingkohl","Paprika","Broccoli","Zwiebeln"
DATA "Möhren"
! --- Frisch- und Milchprodukte ---
DATA "Butter","Margarine","Eier","Milch","Quark","Hefe","Sahne","saure Sahne"
DATA "Joghurt","Creme fraiche","Camembert","Schmelzkäse","Fleischsalat"
DATA "Heringssalat","Bratheringe"
! --- Getränke ---
DATA "Saft","Wasser","Bier","Weinbrand","Sekt"
! --- Konserven ---
DATA "Sauerkraut","Bohnen","Erbsen","Champignons","WÜrstchen","Gurken"
! --- Nährmittel ---
DATA "Brot","Toast","Baguette","Pumpernickel"
DATA "Roggenmehl","Weizenmehl","Paniermehl","Blätterteig"
DATA "Zucker","Salz","Kaffee","Kakao","Nutella","Honig","Sirup","Pflaumenmus"
DATA "Nudeln","Linsen","Reis","Öl","klare BrÜhe","Ketchup","Maggi","Senf"
DATA "Remoulade","Majonaise","Kartoffelklöße","Semmelknödel","Knabbersachen"
! --- Hygiene ---
DATA "Deodorant","Zahnpasta","ZahnbÜrsten","Haarspray","Haarfestiger"
DATA "TempotÜcher","KosmetiktÜcher","Tampons"
DATA "Toilettenpapier","WC-Reiniger","WC-Duft","Fensterreiniger"
DATA "Waschpulver","Feinwaschmittel"
DATA "WeichspÜler","Haushaltsrolle","HandspÜlmittel","MaschinenspÜler"
DATA "SpÜltÜcher","Topfschwämme","Gummihandschuhe","Schuhcreme"
! --- TiefkÜhltheke ---
DATA "Fischstäbchen","Eis","Spinat","Pommes Frites"
! --- Sonstiges ---
DATA "Tesafilm","Teelichter","Kerzen","FiltertÜten","Frischhaltefolie"
DATA "MÜllbeutel"
DATA "#" ! Endekennzeichnung fÜr z.Zt. 125 Waren
! ------------------------- 3 Hauptteile ---------------------------------
SUB programmanfang
CALL vorbereitungen ! Voreinstellungen und Dimensionierungen
CALL zettelaufbau ! Leeren Zettel aufbauen und speichern
CALL felddefinition ! Ein Feld definieren und speichern
END SUB
SUB programmhauptteil
DO ! Schleife fÜr Neustart
CALL zuruecksetzen ! Variablen fÜr Neustart zurÜcksetzen
CALL feldertext("startinfo") ! Feldtexte: Start, Warum gibt es ÖKO ?
CALL zetteltext("oeko") ! Starttext ÖKO V. 1.0 ausgeben
CALL quittungston ! Aufbau akustisch bestätigen
CALL maustest ! Welches Feld angeklickt ? (Schleife)
LOOP while zuende=0 ! Bis "ENDE" angeklickt
END SUB
SUB programmschluss
CALL zetteltext("byebye") ! Abschiedsmeldung
CALL feldertext("byebye") ! Felder löschen
CLOSE #1 ! Druckerkanal schließen
PAUSE 3 ! 3 Sekunden warten
CALL quittungston ! Akustisches Schlußzeichen
CLEAR ! Bildschirm löschen
END SUB
! ------------------------- Unterprogramme -------------------------------
SUB vorbereitungen
SET WINDOW 0,640,0,200 ! Bildschirmkoordinaten
SET color mix (0) .5,.5,.5 ! Farbe: grau
SET color mix (1) 1,1,1 ! Farbe: weiß
SET color mix (2) 0,0,0 ! Farbe: schwarz
SET color mix (3) .9,.1,.1 ! Farbe: rot
DIM ztext$(19) ! Zetteltexte dimensionieren (19 Zeilen)
DIM ftext$(8) ! Feldertexte dimensionieren ( 8 Zeilen)
DIM textfarbe(19) ! Textfarbe dimensionieren (rot/schwarz)
DIM feld(8) ! Flags fÜr gezeigte Felder dimensionieren
DIM tagtext$(7) ! TageskÜrzel dimensionieren
DIM tagbelegt(7) ! Flags fÜr bereits belegte Wochentage
DIM gericht$(7) ! Gerichte dimensionieren
DIM einlesezutat$(7) ! Zutaten zum Einlesen dimensionieren
DIM zutaten$(7,7) ! Feld fÜr Zutaten einer Woche
DIM hilfszutat1$(7) ! Hilfsvariablen zum Zutatentauschen
DIM hilfszutat2$(7) ! Hilfsvariablen zum Zutatentauschen
DIM ware$(109) ! Waren dimensionieren
DIM zutatenware$(49) ! Zutaten zum Sortieren dimensionieren
DIM einleseware$(200) ! Waren zum Einlesen dimensionieren
DIM taste(37) ! Zeichen fÜr Handeintrag dimensionieren
OPEN #1: printer ! Druckerkanal öffnen
END SUB
SUB zettelaufbau
SET color 2
BOX AREA 330,640,0,188 ! Zettelschatten zeichnen
SET color 1
BOX AREA 320,630,10,198 ! Zettel zeichnen
FOR i=0 to 19
SET color 0
BOX CIRCLE 329+i*15,336+i*15,191,195 ! Löcher zeichnen
FLOOD 330+i*15,193
SET color 2
BOX AREA 332+i*15,333+i*15,193,200 ! Drähte zeichnen
NEXT i
BOX KEEP 320,640,0,200 in zettel$ ! Zettel speichern
END SUB
SUB felddefinition ! Oberstes Feld definieren u. speichern
SET color 2
BOX AREA 10,310,168,188 ! Feldschatten zeichnen
BOX KEEP 10,310,168,188 in feldschatten$ ! und speichern
SET color 1
BOX AREA 0,300,178,198 ! Feld zeichnen
SET color 2
BOX LINES 0,300,178,198 ! Feldrahmen zeichnen
BOX KEEP 0,300,178,198 in feld$ ! und beides speichern
END SUB
SUB zuruecksetzen
RESTORE
LET tag=1 ! fÜr Tagesleiste Montag einstellen
LET xt=10 ! x-Wert fÜr "MO"-Ausgabe
LET neustart,zuende,progteil,druck,gedruckt,zettel,z=0
LET warenzahl,warenzaehler,vorschlagszaehler=0
MAT tagbelegt=0
MAT gericht$=""
MAT ware$=""
MAT zutaten$="" ! Vorzeilen: alle Werte zurÜcksetzen und löschen
END SUB
SUB feldertext(titel$) ! Texteausgabe in Felder
IF titel$<>"modimidofrsaso" then ! Felder nicht löschen bei Tages-
FOR i=1 to 8 ! kÜrzelzuweisung
LET ftext$(i)="" ! alte Texte löschen
LET textfarbe(i)=0 ! alte rot/schwarz Zuweisung löschen
NEXT i
END IF
SELECT CASE titel$
CASE "modimidofrsaso"
SET color 2
CALL modimidofrsaso ! WochentagskÜrzel zuweisen
FOR i=0 to 6
PLOT TEXT ,at 10+i*44,17 :tagtext$(i+1) ! KÜrzel eintragen
NEXT i
EXIT SUB
CASE "startinfo"
CALL felder(0,0,3,0,0,6,0,0) ! Feld 3 und 6 darstellen
CALL startinfo ! Feldertexte zuweisen
CASE "entstehung"
CALL felder(0,0,3,0,0,6,0,0) ! ! Feld 3 und 6 darstellen
CALL startinfo ! ! Feldertextzuweisung wie vor
LET ftext$(6)="WAS KANN Ö-K-O ?" ! kleine Änderung
CASE "koennen"
CALL felder(0,0,3,0,0,6,0,0) ! ! Feld 3 und 6 darstellen
CALL startinfo ! ! Feldertextzuweisung wie vor
LET ftext$(6)="WIE WIRD Ö-K-O BEDIENT ?" ! kleine Änderung
CASE "bedienungallgemein"
CALL felder(0,0,3,0,0,0,0,0) ! Feld 3 darstellen
CALL startinfo ! Feldertextzuweisung wie vor
LET ftext$(6)="" ! Feld 6 löschen
CASE "menueauswahl"
CALL felder(1,2,3,4,5,6,7,0)
CALL menueauswahl ! Feldertexte zuweisen
CASE "tastatur"
CALL felder(1,0,0,0,0,0,0,0)
CALL tastatur ! Feldertexte zuweisen
CASE "tagetauschen"
CALL felder(1,2,0,0,5,0,0,0)
CALL tagetauschen ! Feldertexte zuweisen
CALL tagesleiste ! Tagesleiste zeigen
CASE "ok"
LET tagesleisteflag=0 ! Maustest Tagesleiste aus
CALL felder(1,0,0,0,0,0,0,0) ! Feld 1 darstellen
CALL ok ! Feldertexte zuweisen
CASE "einkaufswahl"
CALL felder(1,2,3,4,5,0,7,8)
CALL einkaufswahl ! Feldertexte zuweisen
CASE "endeeinkaufswahl"
CALL felder(1,2,0,4,5,0,7,8)
CALL einkaufswahl ! Feldertexte wie vor zuweisen
LET ftext$(3)="" ! Feld 3 löschen
CASE "zettelschluss"
CALL felder(0,0,0,0,5,0,7,8)
CALL zettelschluss ! Feldertexte zuweisen
CASE "ausgabe"
CALL felder(1,0,3,0,5,0,7,8)
CALL ausgabe ! Feldertexte zuweisen
CASE "byebye"
CALL felder(0,0,0,0,0,0,0,0) ! Alle Felder löschen
END SELECT
FOR i=1 to 8
IF i=textfarbe(i) then SET color 3 else SET color 2
CALL zentrieren(ftext$(i),150,209-i*24) ! und ausgeben
NEXT i
SET color 2 ! Schrift auf schwarz zurÜcksetzen
END SUB
SUB zentrieren(text$,xmitte,y) ! Text zentrieren
LET wortlaenge=len(text$)*8 ! (Parameter: Text-String,
LET x=xmitte-wortlaenge/2 ! Mitte des x-Wertes, y-Wert)
PLOT TEXT,at x,y :text$ ! Zentrierte Textausgabe
END SUB
SUB felder(a,b,c,d,e,f,g,h) ! Felderleiste aufbauen
BOX CLEAR 0,310,0,198 ! alte Felder löschen
FOR i=1 to 8
LET feld(i)=0 ! Feldflags löschen
NEXT i
IF a=1 then ! Feld 1
LET feld(1)=1 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,168 ! gespeicherter Schatten
BOX SHOW feld$ at 0,178 ! gespeichertes Feld u. Rahmen
END IF
IF b=2 then ! Feld 2
LET feld(2)=2 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,144 ! gespeicherter Schatten
BOX SHOW feld$ at 0,154 ! gespeichertes Feld u. Rahmen
END IF
IF c=3 then ! Feld 3
LET feld(3)=3 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,120 ! gespeicherter Schatten
BOX SHOW feld$ at 0,130 ! gespeichertes Feld u. Rahmen
END IF
IF d=4 then ! Feld 4
LET feld(4)=4 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,96 ! gespeicherter Schatten
BOX SHOW feld$ at 0,106 ! gespeichertes Feld u. Rahmen
END IF
IF e=5 then ! Feld 5
LET feld(5)=5 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,72 ! gespeicherter Schatten
BOX SHOW feld$ at 0,82 ! gespeichertes Feld u. Rahmen
END IF
IF f=6 then ! Feld 6
LET feld(6)=6 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,48 ! gespeicherter Schatten
BOX SHOW feld$ at 0,58 ! gespeichertes Feld u. Rahmen
END IF
IF g=7 then ! Feld 7
LET feld(7)=7 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,24 ! gespeicherter Schatten
BOX SHOW feld$ at 0,34 ! gespeichertes Feld u. Rahmen
END IF
IF h=8 then ! Feld 8
LET feld(8)=8 ! Feldflag fÜr KlickprÜfung
BOX SHOW feldschatten$ at 10,0 ! gespeicherter Schatten
BOX SHOW feld$ at 0,10 ! gespeichertes Feld u. Rahmen
END IF
END SUB
SUB zetteltext(titel$) ! Textausgabe auf Zettel
FOR i=1 to 19
LET ztext$(i)="" ! alte Textzuweisung löschen
LET textfarbe(i)=0 ! alte rot/schwarz Zuweisung löschen
NEXT i
SELECT CASE titel$
CASE "oeko"
CALL oeko ! Titelbildtext zuweisen
CASE "entstehung"
CALL entstehung ! Text zuweisen
CASE "koennen"
CALL koennen ! Text zuweisen
CASE "bedienungallgemein"
CALL bedienungallgemein ! Text zuweisen
CASE "bedienungkuechenzettel"
CALL bedienungkuechenzettel ! Text zuweisen
CASE "kuechenzettel"
CALL kuechenzettel ! Text zuweisen
CASE "listevonvorn"
CALL listevonvorn ! Text zuweisen
CASE "belegtertag"
CALL belegtertag ! Text zuweisen
CASE "handeintrag"
CALL handeintrag ! Text zuweisen
CASE "handeintrageinkauf"
CALL handeintrageinkauf ! Text zuweisen
CASE "tauschinfo"
CALL tauschinfo ! Text zuweisen
CASE "bedienungeinkaufszettel"
CALL bedienungeinkaufszettel ! Text zuweisen
CASE "einkaufszettel1"
CALL einkaufszettel1 ! Text zuweisen
CASE "einkaufszettel2"
CALL einkaufszettel2 ! Text zuweisen
CASE "einkaufszettel3"
CALL einkaufszettel3 ! Text zuweisen
CASE "einkaufszettelvoll"
CALL einkaufszettelvoll ! Text zuweisen
CASE "vorschlagsende"
CALL vorschlagsende ! Text zuweisen
CASE "druckervorbereiten"
CALL druckervorbereiten ! Text zuweisen
CASE "bedienungausgabe"
CALL bedienungausgabe ! Text zuweisen
CASE "erstdrucken"
CALL erstdrucken ! Text zuweisen
CASE "byebye"
CALL byebye ! Text zuweisen
CASE "wartendruck"
CALL wartendruck ! Text zuweisen
CASE "druckfertig"
CALL druckfertig ! Text zuweisen
END SELECT
BOX SHOW zettel$ at 320,0 ! neuen leeren Zettel
FOR i=1 to 19
IF textfarbe(i)=i then SET color 3 else SET color 2 ! rot od. schwarz
CALL zentrieren(ztext$(i),475,187-i*9) ! und Text ausgeben
NEXT i
SET color 2 ! Schrift auf schwarz zurÜcksetzen
END SUB
SUB quittungston
FOR i=1 to 3
SOUND 600,.03
SOUND 1500,.03
NEXT i
END SUB
SUB maustest
DO
IF zuende=1 or neustart=1 then EXIT SUB ! wenn Ende oder Neustart !
GET POINT x,y ! Klickkoordinaten speichern
IF tagesleisteflag=1 then ! Nur wenn Tagesleiste vorhanden !
IF y>10 and y<30 then ! Tagesleiste ?
IF x>0 and x<35 then ! Samstag ?
LET xt=10 ! x-Wert fÜr TageskÜrzelausgabe
LET tag=1 ! Tagesflag
LET tagversuch=0 ! Überschreibschutz fÜr Wochentag an
CALL quittungston
CALL taginvertieren ! SA invertieren
ELSEIF x>44 and x<79 then ! Sonntag ?
LET xt=54
LET tag=2
LET tagversuch=0
CALL quittungston
CALL taginvertieren ! SO invertieren
ELSEIF x>88 and x<123 then ! Montag ?
LET xt=98
LET tag=3
LET tagversuch=0
CALL quittungston
CALL taginvertieren ! MO invertieren
ELSEIF x>132 and x<167 then ! Dienstag ?
LET xt=142
LET tag=4
LET tagversuch=0
CALL quittungston
CALL taginvertieren ! DI invertieren
ELSEIF x>176 and x<211 then ! Mittwoch ?
LET xt=186
LET tag=5
LET tagversuch=0
CALL quittungston
CALL taginvertieren ! MI invertieren
ELSEIF x>220 and x<255 then ! Donnerstag ?
LET xt=230
LET tag=6
LET tagversuch=0
CALL quittungston
CALL taginvertieren ! DO invertieren
ELSEIF x>264 and x<299 then ! Freitag ?
LET xt=274
LET tag=7
LET tagversuch=0
CALL quittungston
CALL taginvertieren ! FR invertieren
END IF
END IF
END IF
IF x>0 and x<300 then ! Felderleiste ?
IF y<198 and y>178 then ! 1. Feld von oben ?
LET feldnr=1
IF feld(1)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<174 and y>154 then ! 2. Feld von oben ?
LET feldnr=2
IF feld(2)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<150 and y>130 then ! 3. Feld von oben ?
LET feldnr=3
IF feld(3)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<126 and y>106 then ! 4. Feld von oben ?
LET feldnr=4
IF feld(4)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<102 and y>82 then ! 5. Feld von oben ?
LET feldnr=5
IF feld(5)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<78 and y>58 then ! 6. Feld von oben ?
LET feldnr=6
IF feld(6)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<54 and y>34 then ! 7. Feld von oben ?
LET feldnr=7
IF feld(7)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
ELSEIF y<30 and y>10 then ! 8. Feld von oben ?
LET FELDNR=8
IF feld(8)=feldnr then CALL feldgeklickt ! Wenn Feld vorhanden
END IF
END IF
LOOP
SET color 2 ! Schrift wieder schwarz
END SUB
SUB feldgeklickt
IF feldnr>3 then
LET tagversuch=0 ! Überschreibschutz an, falls Überschreiben nicht bestätigt
LET hand=0 ! Handeintragsmarkierung löschen
END IF
IF tauschversuch>0 and feldnr>1 and feldnr<>5 then LET tauschversuch=0 ! Tauschversuch zurÜcksetzen, wenn nicht Tauschen bestätigt
IF gedruckt=0 then ! Wenn noch nicht gedruckt
IF druck=1 and feldnr>1 and feldnr<7 then LET druck=0 ! Sicherheitsabfrage bei Neustart und Ende zurÜcksetzen, wenn nicht bestätigt
END IF
IF feldnr<>3 then LET zettel=0 ! Zettel durchblättern auf Anfang (KÜchenzettel) setzen, wenn nicht weiter geblättert
SELECT CASE feldnr ! Feldnummer prÜfen
CASE 1
IF ftext$(1)="" then ! nicht klingeln, da Vorschlagszeile
EXIT SUB
ELSEIF ftext$(1)="ALLE ZETTEL DRUCKEN" then
CALL quittungston
CALL drucker
ELSEIF ftext$(1)="OK" and progteil=0 then
CALL zetteltext("kuechenzettel") ! KÜchenzetteltext ausgeben
CALL feldertext("menueauswahl") ! MenÜauswahltexte ausgeben
CALL tagesleiste ! Tagesleiste wieder darstellen
SET color 3
CALL zentrieren(anzeigegericht$,150,185)
ELSEIF ftext$(1)="OK" and progteil=1 then ! Wenn Einkaufszettel
IF ez=1 then ! Wenn Seite 1
CALL zetteltext("einkaufszettel1")
ELSEIF ez=2 then ! Wenn Seite 2
CALL zetteltext("einkaufszettel2")
ELSEIF ez=3 then ! Wenn Seite 3
CALL zetteltext("einkaufszettel3")
END IF
IF warenzaehler<=108 then ! Wenn Einkaufszettel noch nicht voll
IF vorschlagszaehler<>warenzahl then ! Wenn noch Waren in der Liste
CALL feldertext("einkaufswahl") ! Einkaufsauswahlfelder zeigen
ELSEIF vorschlagszaehler=warenzahl then ! Wenn Warenliste zuende
CALL feldertext("endeeinkaufswahl") ! "Neuer Vorschlag" weg
END IF
ELSEIF warenzaehler>108 then ! Wenn Einkaufszettel voll
CALL feldertext("zettelschluss") ! Nur noch Feld 5,7,8
CALL quittungston
EXIT SUB
END IF
SET color 3
CALL zentrieren(anzeigeware$,150,185) ! Letzte Ware wieder anzeigen
ELSEIF ftext$(1)="OK" and progteil=2 then ! Ausgabeteil
IF gedruckt=1 then
CALL zetteltext("druckfertig")
ELSEIF gedruckt=0 then
CALL zetteltext("druckervorbereiten") ! Vorbereitungstext ausgeben
END IF
CALL feldertext("ausgabe") ! Ausgabefelder zeigen
END IF
CASE 2
IF ftext$(2)="ABBRUCH" then
CALL tauschende ! Tauschabbruch
ELSEIF ftext$(2)="GERICHT EINTRAGEN" then
CALL gerichteintragen
ELSEIF ftext$(2)="WARE EINTRAGEN" then
CALL wareeintragen
END IF
CASE 3
IF ftext$(3)="START" then
CALL zetteltext("kuechenzettel") ! KÜchenzetteltext ausgeben
CALL feldertext("menueauswahl") ! MenÜauswahltexte ausgeben
CALL tagesleiste ! Tagesleiste aufbauen und speichern
CALL gerichteinlesen
ELSEIF ftext$(3)="NEUER VORSCHLAG" then
CALL gerichteinlesen
ELSEIF ftext$(3)="NÄCHSTE WARE" then
CALL wareeinlesen
ELSEIF ftext$(3)="ALLE ZETTEL DURCHBLÄTTERN" then
IF zettel=0 then ! KÜchenzettel zeigen
LET zettel=1
CALL zetteltext("kuechenzettel")
ELSEIF zettel=1 then ! EINKAUFSZETTEL S.1 zeigen
IF warenzaehler>36 then
LET zettel=2
ELSEIF warenzaehler<=36 then
LET zettel=4
END IF
CALL zetteltext("einkaufszettel1")
ELSEIF zettel=2 then ! ggfls. Einkaufszettel S.2 zeigen
IF warenzaehler>72 then
LET zettel=3
ELSEIF warenzaehler<=72 then
LET zettel=4
END IF
CALL zetteltext("einkaufszettel2")
ELSEIF zettel=3 then ! ggfls. Einkaufszettel S.3 zeigen
LET zettel=4
CALL zetteltext("einkaufszettel3")
ELSEIF zettel=4 then
LET zettel=0
IF gedruckt=0 then
CALL zetteltext("druckervorbereiten")
ELSEIF gedruckt=1 then
CALL zetteltext("druckfertig")
END IF
END IF
END IF
CASE 4
IF ftext$(4)="EINTRAG PER HAND" then
CALL tastatureingabe ! Eingaberoutine
END IF
CASE 5
IF ftext$(5)="TAGE TAUSCHEN" or ftext$(5)="BESTÄTIGUNG" then
CALL tauschen ! Tauschroutine
ELSEIF ftext$(5)="WEITERE ZETTELSEITE ZEIGEN" then
IF ez=1 then ! Wenn Seite 1
CALL zetteltext("einkaufszettel2") ! dann Seite 2 zeigen
LET ez=2 ! Flag fÜr Seite 2 setzen
ELSEIF ez=2 then ! Wenn Seite 2
CALL zetteltext("einkaufszettel3") ! dann Seite 3 zeigen
LET ez=3 ! Flag fÜr Seite 3 setzen
ELSEIF ez=3 then ! Wenn Seite 3
CALL zetteltext("einkaufszettel1") ! dann Seite 1 zeigen
LET ez=1 ! Flag fÜr Seite 1 setzen
END IF
ELSEIF ftext$(5)="INFORMATION" then
CALL zetteltext("bedienungausgabe")
CALL feldertext("ok")
END IF
CASE 6
IF ftext$(6)="WARUM GIBT ES Ö-K-O ?" then
CALL zetteltext("entstehung") ! Was kann ÖKO ?
CALL feldertext("entstehung") ! neue Feldertexte
ELSEIF ftext$(6)="WAS KANN Ö-K-O ?" then
CALL zetteltext("koennen") ! Was kann ÖKO ?
CALL feldertext("koennen") ! neue Feldertexte
ELSEIF ftext$(6)="WIE WIRD Ö-K-O BEDIENT ?" then
CALL zetteltext("bedienungallgemein") ! Wie wird ÖKO bedient ?
CALL feldertext("bedienungallgemein") ! neue Feldertexte
ELSEIF ftext$(6)="INFO ZUR KÜCHENZETTELERSTELLUNG" then
CALL zetteltext("bedienungkuechenzettel")
CALL feldertext("ok")
END IF
CASE 7
IF ftext$(7)="KÜCHENZETTEL FERTIG" then
LET progteil=1 ! Einkaufszettelerstellung
LET ez=1 ! Flag fÜr Seite 1
LET tagesleisteflag=0 ! Maustest fÜr Tage aus
CALL zetteltext("einkaufszettel1") ! Einkaufszettel 1 zeigen
CALL feldertext("einkaufswahl") ! Einkaufsauswahlfelder zeigen
SET color 3
CALL zentrieren("Bitte warten - ÖKO sortiert !",150,185)
CALL zutatensortieren ! Gerichtzutaten zur Ausgabe sortieren
CALL wareeinlesen ! Ware anzeigen
ELSEIF ftext$(7)="INFO ZUR EINKAUFSZETTELERSTELLUNG" then
CALL zetteltext("bedienungeinkaufszettel")
CALL feldertext("ok")
ELSEIF ftext$(7)="NEUSTART" and druck=0 then
LET druck=1
CALL zetteltext("erstdrucken")
CALL feldertext("ok")
ELSEIF ftext$(7)="NEUSTART" and druck=1 then
LET neustart=1
EXIT SUB ! nicht klingeln
END IF
CASE 8
IF ftext$(8)="EINKAUFSZETTEL FERTIG" then
LET progteil=2 ! Ausgabeteil
CALL zetteltext("druckervorbereiten") ! Information
CALL feldertext("ausgabe") ! Ausgabefelder zeigen
ELSEIF ftext$(8)="ENDE" and druck=0 then
LET druck=1
CALL zetteltext("erstdrucken")
CALL feldertext("ok")
ELSEIF ftext$(8)="ENDE" and druck=1 then
LET zuende=1
END IF
END SELECT
CALL quittungston
END SUB
SUB tagesleiste ! Tagesleiste aufbauen
LET Tagesleisteflag=1 ! Flag fÜr Maustest Tagesleiste an
FOR i=0 to 6
SET color 2
BOX AREA 10+i*44,45+i*44,0,20 ! Tagesfeldschatten
SET color 1
BOX AREA 0+i*44,35+i*44,10,30 ! Tagesfeld
SET color 2
BOX LINES 0+i*44,35+i*44,10,30 ! Tagesfeldrahmen
NEXT i
CALL feldertext("modimidofrsaso") ! WochentagskÜrzel eintragen
BOX KEEP 0,310,0,30 in tagesleiste$ ! Tagesleiste speichern
SET color 3
PLOT TEXT, at xt,17:tagtext$(tag) ! Tag in rot
END SUB
SUB taginvertieren
LET tagesleisteflag=1 ! Maustest Tagesleiste an
BOX SHOW tagesleiste$ at 0,0 ! gespeicherte Tagesleiste darstellen
SET color 3
CALL modimidofrsaso ! WochentagskÜrzel einlesen
PLOT TEXT,at xt,17 :tagtext$(tag) ! angeklickten Tag in rot
END SUB
SUB gerichteinlesen ! Gerichte in Vorschlagszeile anzeigen
SET color 1
BOX AREA 1,299,179,197 ! Vorschlagszeile weiß
IF hand=1 then ! Nach Handeintrag
LET anzeigegericht$=gerichtspeicher$ ! gespeichertes Gericht weider zeigen
ELSEIF hand=0 then
READ anzeigegericht$ ! anzeigegericht$=Einlesevariable fÜr Gericht
FOR i=1 to 7
READ einlesezutat$(i) ! einlesezutat$(i)=Einlesevariable fÜr Zutaten
NEXT i
END IF
IF anzeigegericht$="Vorschlagsliste beginnt von vorn !" then RESTORE
SET color 3 ! Vorzeile: Datas zurÜcksetzen, wenn Listenende
CALL zentrieren(anzeigegericht$,150,185) ! in rot ausgeben
LET hand=0 ! Handeintragsmarkierung löschen
LET tagversuch=0 ! Überschreibschutz an
END SUB
SUB gerichteintragen
IF anzeigegericht$="Vorschlagsliste beginnt von vorn !" then
CALL zetteltext("listevonvorn") ! Hinweis : Listenende
CALL feldertext("ok")
EXIT SUB
ELSEIF tagbelegt(tag)=tag and tagversuch=0 then ! Wenn Tag schon belegt
LET tagversuch=1 ! erster Versuch Tag zu Überschreiben
CALL zetteltext("belegtertag") ! Hinweis
CALL feldertext("ok")
EXIT SUB
END IF
IF anzeigegericht$<>"- - - - -" then ! Wenn keine Löschung per Hand
LET gericht$(tag)=anzeigegericht$ ! Einlesevariable=Tagesvariable
LET tagbelegt(tag)=tag ! Tag als belegt kennzeichnen
IF hand=0 then ! wenn kein Handeintrag
FOR i=1 to 7
LET zutaten$(tag,i)=einlesezutat$(i) ! Zutaten in ein Feld (7 Tage x 5 Zutaten)
NEXT i
END IF
ELSEIF anzeigegericht$="- - - - -" then ! Wenn Löschung,dann
LET gericht$(tag)="" ! nichts auf den Zettel
LET tagbelegt(tag)=0 ! Belegtzeichen löschen
FOR i=1 to 7
LET zutaten$(tag,i)="" ! Zutaten im Feld löschen
NEXT i
END IF
CALL zetteltext("kuechenzettel") ! ergänzter KÜchenzettel
CALL gerichteinlesen
END SUB
SUB tastatureingabe ! von Tastatur Gericht oder Ware einlesen
IF progteil=0 then ! Gerichteingabe
CALL feldertext("tastatur")
CALL zetteltext("handeintrag") ! Info
LET maxzeichen=37 ! Gerichte bis zu 35 Zeichen (2-37)
LET gerichtspeicher$=anzeigegericht$ ! Letze Anzeige speichern
ELSEIF progteil=1 then ! Wareneingabe
CALL feldertext("tastatur")
CALL zetteltext("handeintrageinkauf") ! Info
LET maxzeichen=20 ! Waren bis zu 18 Zeichen (2-20)
END IF
CALL quittungston
SET cursor "OFF" ! Cursor ausschalten
LET fertig=0 ! Eingabeschlußflag aus
LET zahl=1 ! Zeichenzähler
DO until fertig=1
LET zahl=zahl+1
IF zahl<=maxzeichen then ! maximale Zeichenanzahl ?
GET KEY taste(zahl) ! Zeichen von Tastatur einlesen
IF taste(zahl)=13 then
LET zahl=zahl-1 ! Returnzeichen löschen
LET fertig=1 ! Eingabeschlußflag an
DO
IF chr$(taste(zahl))=" " then LET zahl=zahl-1 ! Abschließende Leerzeichen löschen
LOOP until chr$(taste(zahl))<>" "
ELSEIF taste(zahl)=8 then ! Backspacekontrolle
IF zahl>=3 then ! Backspacekontrolle
LET zahl=zahl-2 ! Backspacekontrolle
ELSEIF zahl<3 then ! Backspacekontrolle
LET zahl=1 ! Backspacekontrolle
END IF ! Backspacekontrolle
ELSEIF taste(zahl)<32 or taste(zahl)>126 then
LET zahl=zahl-1 ! Nur darstellbare Zeichen ausgeben
END IF
ELSEIF zahl>maxzeichen then ! Mehr als max. Zeichenzahl ?
LET zahl=maxzeichen-1 ! Darstellung abweisen, aber Eingabe
END IF ! wegen Schlußzeichen noch möglich !
IF progteil=0 then ! beim KÜchenzettel
LET anzeigegericht$=""
FOR i=2 to zahl
LET anzeigegericht$=anzeigegericht$ & chr$(taste(i))
IF anzeigegericht$=" " then ! FÜhrende Leerzeichen abweisen
LET anzeigegericht$=""
LET zahl=1
END IF
NEXT i
IF anzeigegericht$="" then LET anzeigegericht$="- - - - -" ! Wenn durch Handeintrag Löschung
SET color 1
BOX AREA 1,299,179,197 ! Vorschlagszeile weiß
SET color 3
CALL zentrieren(anzeigegericht$,150,185)
ELSEIF progteil=1 then ! beim Einkaufszettel
LET anzeigeware$=""
FOR i=2 to zahl
LET anzeigeware$=anzeigeware$ & chr$(taste(i))
IF anzeigeware$=" " then ! FÜhrende Leerzeichen abweisen
LET anzeigeware$=""
LET zahl=1
END IF
NEXT i
IF anzeigeware$="" then LET anzeigeware$="- - - - -" ! Wenn durch Handeintrag Löschung
SET color 1
BOX AREA 1,299,179,197 ! Vorschlagszeile weiß
SET color 3
CALL zentrieren(anzeigeware$,150,185)
END IF
LOOP
IF progteil=0 then ! beim KÜchenzettel
LET hand=1 ! als Handeintrag kennzeichnen (keine Zutaten einlesen)
CALL feldertext("menueauswahl") ! Menueauswahlfelder wieder zeigen
CALL taginvertieren ! Tagesleiste wieder zeigen
SET color 3
CALL zentrieren(anzeigegericht$,150,185) ! Eintrag in Vorschlagzeile
CALL zetteltext("kuechenzettel") ! KÜchenzettel wieder zeigen
ELSEIF progteil=1 then ! beim Einkaufszettel
LET hand=1 ! als Handeintrag kennzeichnen
IF vorschlagszaehler<>warenzahl then ! Wenn noch Waren in der Liste
CALL feldertext("einkaufswahl") ! Einkaufsauswahlfelder zeigen
ELSEIF vorschlagszaehler=warenzahl then ! Wenn Warenliste zuende
CALL feldertext("endeeinkaufswahl") ! "Neuer Vorschlag" weg
END IF
IF warenzaehler<=36 then ! Wenn Seite 1 noch nicht voll
CALL zetteltext("einkaufszettel1") ! dann Seite 1 zeigen
LET ez=1 ! Flag fÜr Seite 1 setzen
ELSEIF warenzaehler<=72 then ! Wenn Seite 2 noch nicht voll
CALL zetteltext("einkaufszettel2") ! dann Seite 2 zeigen
LET ez=2 ! Flag fÜr Seite 2 setzen
ELSEIF warenzaehler<=108 then ! Wenn Seite 3 noch nicht voll
CALL zetteltext("einkaufszettel3") ! dann Seite 1 zeigen
LET ez=3 ! Flag fÜr Seite 3 setzen
END IF
SET color 3
CALL zentrieren(anzeigeware$,150,185) ! Eintrag in Vorschlagzeile
END IF
END SUB
SUB tauschen
IF tauschversuch=0 then ! erstesmal tauschen ?
LET tauschversuch=1 ! Versuchanzahl merken
CALL zetteltext("tauschinfo") ! Info ausgeben
CALL feldertext("ok")
ELSEIF tauschversuch=1 then ! zweitesmal tauschen ?
CALL feldertext("tagetauschen") ! Tauschfelder zeigen
SET color 3
CALL zentrieren("Bitte 1.Tag und Bestätigung",150,185)
LET tauschversuch=2 ! Versuchanzahl merken
ELSEIF tauschversuch=2 then ! Bestätigung ?
SET color 1
BOX AREA 1,299,179,197 ! Vorschlagszeile weiß
SET color 3
CALL zentrieren("Jetzt 2.Tag und Bestätigung",150,185)
LET tauschtag1=tag ! 1.Tag merken
LET tauschversuch=3 ! Versuchanzahl merken
ELSEIF tauschversuch=3 then
LET tauschtag2=tag ! 2.Tag merken und jetzt tauschen :
LET hilfsgericht1$=gericht$(tauschtag1) ! Hilfsgericht1=Gericht 1.Tag
LET hilfsgericht2$=gericht$(tauschtag2) ! Hilfsgericht2=Gericht 2.Tag
LET gericht$(tag)=hilfsgericht1$ ! Gericht 2.Tag=Hilfsgericht1
LET gericht$(tauschtag1)=hilfsgericht2$ ! Gericht 1.Tag=Hilfsgericht2
FOR i=1 to 7 ! Zutaten tauschen :
LET hilfszutat1$(i)=zutaten$(tauschtag1,i) ! Hilfszutat1=Zutaten 1.Tag
LET hilfszutat2$(i)=zutaten$(tauschtag2,i) ! Hilfszutat2=Zutaten 2.Tag
LET zutaten$(tag,i)=hilfszutat1$(i) ! Zutaten 2.Tag=Hilfszutaten1
LET zutaten$(tauschtag1,i)=hilfszutat2$(i) ! Zutaten 1.Tag=Hilfszutaten2
NEXT i
LET tagbelegt(tag)=tag ! Tag als belegt kennzeichnen, falls
LET tagbelegt(tauschtag1)=tauschtag1 ! vorher unbelegt
IF gericht$(tag)="" then ! Falls jetzt unbelegt
LET tagbelegt(tag)=0 ! Belegtzeichen löschen
FOR i=1 to 7
LET zutaten$(tag,i)="" ! Zutaten löschen
NEXT i
END IF
IF gericht$(tauschtag1)="" then
LET tagbelegt(tauschtag1)=0
FOR i=1 to 7
LET zutaten$(tauschtag1,i)="" ! Zutaten löschen
NEXT i
END IF
LET tauschversuch=0 ! Versuchanzahl zurÜcksetzen
CALL zetteltext("kuechenzettel") ! Neuen KÜchenzettel zeigen
CALL feldertext("menueauswahl") ! Menuefelder zeigen
CALL tagesleiste ! Tagesleiste zeigen
CALL gerichteinlesen ! Nächstes Gericht anzeigen
END IF
END SUB
SUB tauschende
LET tauschversuch=0 ! Versuchanzahl zurÜcksetzen
CALL zetteltext("kuechenzettel") ! KÜchenzettel zeigen
CALL feldertext("menueauswahl") ! Menuefelder zeigen
CALL tagesleiste ! Tagesleiste zeigen
CALL gerichteinlesen ! Nächstes Gericht anzeigen
END SUB
SUB zutatensortieren
FOR i=1 to 7 ! fÜr 7 Tage
FOR j=1 to 7 ! und je 7 Zutaten
LET z=z+1 ! 49x mitzählen
LET zutatenware$(z)=zutaten$(i,j)
FOR k=1 to z-1 ! Letzte Zutat mit einer bisherigen gleich ?
IF zutatenware$(z)=zutatenware$(k) then LET zutatenware$(z)=""
NEXT k ! Vorzeile : dann löschen !
NEXT j
NEXT i
FOR i=1 to z ! 49 mal
IF zutatenware$(i)<>""then ! Nullstrings im Feld löschen
LET warenzahl=warenzahl+1 ! mitzählen der Zutaten=Warenzahl
LET einleseware$(warenzahl)=zutatenware$(i)
END IF
NEXT i
LET zutatenzahl=warenzahl ! Zutatenzahl merken
DO
READ wegdamit$ ! Restdatas der Gerichte weglesen
LOOP until wegdamit$="*" ! Anfang der Warenliste
DO
LET warenzahl=warenzahl+1 ! weiterzählen der Warenzahl
READ einleseware$(warenzahl) ! Warendatas
FOR i=1 to zutatenzahl ! Vergleich, ob bereits als Zutat vorhanden ?
IF einleseware$(warenzahl)=einleseware$(i) then LET warenzahl=warenzahl-1 ! wenn ja: weg !
NEXT i
LOOP until einleseware$(warenzahl)="#" ! Datas zu Ende
FOR i=1 to zutatenzahl
LET einleseware$(i)="-"&einleseware$(i) ! als Zutaten kennzeichnen
NEXT i
END SUB
SUB wareeinlesen ! Waren in Vorschlagszeile anzeigen
IF hand=1 then LET vorschlagszaehler=vorschlagszaehler-1 ! nach Handeintrag einen Vorschlag zurÜck
LET hand=0
SET color 1
BOX AREA 1,299,179,197 ! Vorschlagszeile weiß
LET vorschlagszaehler=vorschlagszaehler+1 ! Vorschlagszähler
IF vorschlagszaehler>warenzahl then LET vorschlagszaehler=warenzahl ! Nicht Über die Gesamtmenge hinaus
LET anzeigeware$=einleseware$(vorschlagszaehler) ! anzeigeware$=Einlesevariable fÜr Waren
IF anzeigeware$="#" then ! Wenn letzte Ware aus der Liste
LET anzeigeware$="- - - - -" ! das "#" löschen
CALL zetteltext("vorschlagsende")
CALL feldertext("ok")
EXIT SUB
END IF
SET color 3
CALL zentrieren(anzeigeware$,150,185) ! Ware in rot ausgeben
END SUB
SUB wareeintragen
IF vorschlagszaehler=warenzahl and anzeigeware$="- - - - -" then EXIT SUB ! Wenn Einleseschluß u. kein Handeintrag
LET warenzaehler=warenzaehler+1 ! Waren bis max. 108 mitzählen
IF anzeigeware$="- - - - -" then ! wenn Handeintrag nur RETURN
LET anzeigeware$=""
LET warenzaehler=warenzaehler-1
CALL wareeinlesen
EXIT SUB
END IF
IF warenzaehler>108 then ! Wenn drei Seiten voll
CALL zetteltext("einkaufszettelvoll") ! Information darÜber
CALL feldertext("ok")
EXIT SUB
END IF
LET ware$(warenzaehler)=anzeigeware$ ! Ware auf Zettel Übernehmen
IF warenzaehler<=36 then ! Wenn Seite 1 noch nicht voll
CALL zetteltext("einkaufszettel1") ! dann Seite 1 zeigen
LET ez=1 ! Flag fÜr Seite 1 setzen
ELSEIF warenzaehler<=72 then ! Wenn Seite 2 noch nicht voll
CALL zetteltext("einkaufszettel2") ! dann Seite 2 zeigen
LET ez=2 ! Flag fÜr Seite 2 setzen
ELSEIF warenzaehler<=108 then ! Wenn Seite 3 noch nicht voll
CALL zetteltext("einkaufszettel3") ! dann Seite 3 zeigen
LET ez=3 ! Flag fÜr Seite 3 setzen
END IF
IF vorschlagszaehler<>warenzahl then CALL wareeinlesen
END SUB
SUB drucker
CALL zetteltext("wartendruck") ! Info
CALL feldertext("byebye") ! keine Felder
CALL druckformat ! Formatiert drucken
LET druck,gedruckt=1 ! merken, daß gedruckt
CALL zetteltext("druckfertig") ! Info
CALL feldertext("ausgabe") ! Felder wiederzeigen
END SUB
SUB druckformat
PRINT #1: repeat$("*",60)
PRINT #1: "* Ö-K-O V0.9 KÜCHENZETTEL ";date$[7:8];".";date$[5:6];".";date$[1:4];" *"
PRINT #1: repeat$("*",60)
PRINT #1:
PRINT #1: " SAMSTAG : ";gericht$(1)
PRINT #1:
PRINT #1: " SONNTAG : ";gericht$(2)
PRINT #1:
PRINT #1: " MONTAG : ";gericht$(3)
PRINT #1:
PRINT #1: " DIENSTAG : ";gericht$(4)
PRINT #1:
PRINT #1: " MITTWOCH : ";gericht$(5)
PRINT #1:
PRINT #1: " DONNERSTAG : ";gericht$(6)
PRINT #1:
PRINT #1: " FREITAG : ";gericht$(7)
PRINT #1:
PRINT #1:
PRINT #1:
PRINT #1: repeat$("*",60)
PRINT #1: "* Ö-K-O V0.9 EINKAUFSZETTEL ";date$[7:8];".";date$[5:6];".";date$[1:4];" *"
PRINT #1: repeat$("*",60)
PRINT #1:
IF warenzaehler>108 then LET warenzaehler=108
IF warenzaehler/3<>int(warenzaehler/3) then ! Warenzahl durch 3 teilbar ?
DO until warenzaehler/3=int(warenzaehler/3) ! erhöhen, bis durch 3 teilbar
LET WARENZAEHLER=WARENZAEHLER+1 ! fÜr 3-spaltigen Ausdruck
LOOP
END IF
FOR i=1 to warenzaehler/3 ! Dreispaltige Ausgabe
PRINT #1: " ";ware$(i)&repeat$(" ",20-len(ware$(i)))&ware$(warenzaehler/3+i)&repeat$(" ",20-len(ware$(warenzaehler/3+i)))&ware$((warenzaehler/3)*2+i)&repeat$(" ",20-len(ware$((warenzaehler/3)*2+i)))
NEXT i
END SUB
!--------------------- Textzuweisungen fÜr Zettel -------------------------
SUB oeko
LET ztext$(4)="Ö - K - O"
LET ztext$(7)="***********************************"
LET ztext$(9)="ÖTTI`S KÜCHEN-ORDNUNG"
LET ztext$(11)="***********************************"
LET ztext$(14)="V 0.9"
LET ztext$(16)="1989 N.Ellert, 3208 Giesen"
LET textfarbe(4)=4
LET textfarbe(9)=9
END SUB
SUB entstehung
LET ztext$(2)="Ö - K - O"
LET ztext$(3)="------------------------------------"
LET ztext$(4)="ÖTTI`S KÜCHEN-ORDNUNG"
LET ztext$(6)="ist ein Programm, das ich schrieb,"
LET ztext$(7)="weil Ötti freitags immer fragte :"
LET ztext$(9)="Was soll ich nächste Woche kochen ?"
LET ztext$(11)="Dann beschäftigte sie die Frage :"
LET ztext$(13)="Was muß ich dafÜr einkaufen ?"
LET ztext$(15)="Beide Fragen beantwortet nun Ö-K-O !"
LET ztext$(16)="Interaktiv wird ein KÜchenzettel"
LET ztext$(17)="und der passende Einkaufszettel"
LET ztext$(18)="erstellt und gedruckt!"
LET textfarbe(4)=4
LET textfarbe(9)=9
LET textfarbe(13)=13
END SUB
SUB koennen
LET ztext$(2)="Ö - K - O"
LET ztext$(3)="------------------------------------"
LET ztext$(5)="ÖTTI`S KÜCHEN-ORDNUNG"
LET ztext$(7)="kennt 60 Gerichte mit jeweils bis"
LET ztext$(8)="zu 7 Zutaten. Aus diesen Gerichten"
LET ztext$(9)="können fÜr eine Woche 7 Gerichte"
LET ztext$(10)="ausgewählt werden."
LET ztext$(12)="FÜr den Einkaufszettel sind bis"
LET ztext$(13)="zu 108 Einträge möglich. DafÜr"
LET ztext$(14)="schlägt Ö-K-O zuerst die Zutaten"
LET ztext$(15)="der ausgewählten Gerichte und"
LET ztext$(16)="dann Über 120 weitere Waren ohne"
LET ztext$(17)="Doppelnennungen zum Einkauf vor !"
LET textfarbe(5)=5
END SUB
SUB bedienungallgemein
LET ztext$(1)="Ö - K - O"
LET ztext$(2)="-------------"
LET ztext$(3)="macht im ersten Feld links oben"
LET ztext$(4)="Gericht- oder Einkaufsvorschläge,"
LET ztext$(5)="die durch Anklicken eines Feldes"
LET ztext$(6)="Übernommen oder abgewählt werden."
LET ztext$(7)="Zutaten gewählter Gerichte werden"
LET ztext$(8)="bei den Einkaufsvorschlägen berÜck-"
LET ztext$(9)="sichtigt. Handeinträge und das Aus-"
LET ztext$(10)="tauschen von Tagen sind möglich."
LET ztext$(12)="Am Schluß wird der KÜchenzettel und"
LET ztext$(13)="der Einkaufszettel ausgedruckt."
LET ztext$(15)="Zu jeder Zeit können weitere"
LET ztext$(16)="Informationen abgerufen werden."
LET ztext$(17)="Bei Fehlern erscheinen Benutzer-"
LET ztext$(18)="hinweise auf dem Zettel."
LET textfarbe(1)=1
LET textfarbe(4)=4
END SUB
SUB bedienungkuechenzettel
LET ztext$(1)="INFO ZUR KÜCHENZETTELERSTELLUNG"
LET ztext$(2)="-----------------------------------"
LET ztext$(3)="Oberstes Feld:"
LET ztext$(4)="Vorschlags- und Hinweiszeile"
LET ztext$(5)="GERICHT EINTRAGEN:"
LET ztext$(6)="Vorschlag auf den Zettel Übernehmen"
LET ztext$(7)="NEUER VORSCHLAG:"
LET ztext$(8)="Nächsten Gerichtvorschlag anzeigen"
LET ztext$(9)="EINTRAG PER HAND:"
LET ztext$(10)="Gericht per Hand eingeben/löschen"
LET ztext$(11)="TAGE TAUSCHEN:"
LET ztext$(12)="Gerichte auf dem Zettel vertauschen"
LET ztext$(13)="INFO ZUR ... :"
LET ztext$(14)="Infos zum jeweiligen Programmteil"
LET ztext$(15)="KÜCHENZETTEL FERTIG:"
LET ztext$(16)="Wechsel zur Einkaufszettelerstellung"
LET ztext$(17)="Wochentagsleiste:"
LET ztext$(18)="Auswahl des Tages fÜr Gerichteintrag"
LET ztext$(19)="* * *"
LET textfarbe(3)=3
LET textfarbe(5)=5
LET textfarbe(7)=7
LET textfarbe(9)=9
LET textfarbe(11)=11
LET textfarbe(13)=13
LET textfarbe(15)=15
LET textfarbe(17)=17
END SUB
SUB kuechenzettel
LET ztext$(2)="----------- KÜCHENZETTEL -----------"
LET ztext$(4)="SAMSTAG:"
LET ztext$(5)=gericht$(1)
LET ztext$(6)="SONNTAG"
LET ztext$(7)=gericht$(2)
LET ztext$(8)="MONTAG:"
LET ztext$(9)=gericht$(3)
LET ztext$(10)="DIENSTAG:"
LET ztext$(11)=gericht$(4)
LET ztext$(12)="MITTWOCH:"
LET ztext$(13)=gericht$(5)
LET ztext$(14)="DONNERSTAG:"
LET ztext$(15)=gericht$(6)
LET ztext$(16)="FREITAG:"
LET ztext$(17)=gericht$(7)
LET ztext$(19)="------------------------------------"
LET textfarbe(4)=4
LET textfarbe(6)=6
LET textfarbe(8)=8
LET textfarbe(10)=10
LET textfarbe(12)=12
LET textfarbe(14)=14
LET textfarbe(16)=16
END SUB
SUB listevonvorn
LET ztext$(5)="Die Vorschlagsliste enthält"
LET ztext$(7)="keine weiteren Einträge"
LET ztext$(9)="und beginnt jetzt von vorn !"
LET ztext$(11)="Dazu bitte"
LET ztext$(13)="<NEUER VORSCHLAG>"
LET ztext$(15)="anklicken !"
LET textfarbe(7)=7
LET textfarbe(13)=13
END SUB
SUB belegtertag
LET ztext$(2)="FÜr"
IF tag=1 then LET ztext$(4)="Samstag"
IF tag=2 then LET ztext$(4)="Sonntag"
IF tag=3 then LET ztext$(4)="Montag"
IF tag=4 then LET ztext$(4)="Dienstag"
IF tag=5 then LET ztext$(4)="Mittwoch"
IF tag=6 then LET ztext$(4)="Donnerstag"
IF tag=7 then LET ztext$(4)="Freitag"
LET ztext$(6)="wurde bereits ein Eintrag gemacht !"
LET ztext$(8)="Wenn dieser Überschrieben werden"
LET ztext$(10)="soll, zur Bestätigung nochmals"
LET ztext$(12)="auf <GERICHT EINTRAGEN> klicken."
LET ztext$(14)="Sonst bitte einen"
LET ztext$(16)="anderen Wochentag"
LET ztext$(18)="wählen !"
LET textfarbe(4)=4
LET textfarbe(16)=16
END SUB
SUB handeintrag
LET ztext$(1)="WICHTIGE HINWEISE"
LET ztext$(2)="------------------------------------"
LET ztext$(3)="Jetzt ist die Eingabe eines Gerichts"
LET ztext$(4)="mit höchstens 35 Zeichen möglich."
LET ztext$(5)="FÜr Ü,ö,ä,ß nur ue,oe,ae,ss benutzen."
LET ztext$(6)="Falsche Eingaben können durch"
LET ztext$(7)="<BACKSPACE>"
LET ztext$(8)="wieder gelöscht werden. Abschließend"
LET ztext$(9)="<RETURN>"
LET ztext$(10)="drÜcken. Nur <RETURN> löscht die"
LET ztext$(11)="Vorschlagszeile. Danach ist die"
LET ztext$(12)="Übernahme des Eintrags oder der"
LET ztext$(13)="Löschung auf den KÜchenzettel mit"
LET ztext$(14)="<GERICHT EINTRAGEN>"
LET ztext$(15)="möglich. ACHTUNG: Bei Handeinträgen"
LET ztext$(16)="kennt ÖKO keine Zutaten und kann"
LET ztext$(17)="diese fÜr den Einkaufszettel auch"
LET ztext$(18)="nicht vorschlagen !!!"
LET ztext$(19)="------------------------------------"
LET textfarbe(1)=1
LET textfarbe(7)=7
LET textfarbe(9)=9
LET textfarbe(14)=14
END SUB
SUB handeintrageinkauf
LET ztext$(2)="HINWEIS"
LET ztext$(3)="------------------------------------"
LET ztext$(5)="Jetzt ist die Eingabe einer Ware"
LET ztext$(6)="mit höchstens 18 Zeichen möglich."
LET ztext$(8)="FÜr Ü,ö,ä,ß nur ue,oe,ae,ss benutzen."
LET ztext$(10)="Falsche Eingaben können durch"
LET ztext$(11)="<BACKSPACE>"
LET ztext$(12)="wieder gelöscht werden."
LET ztext$(14)="Nach Eingabeschluß bitte"
LET ztext$(15)="<RETURN>"
LET ztext$(16)="drÜcken. Nur <RETURN> fÜhrt zum"
LET ztext$(17)="Einkaufszettel zurÜck !"
LET textfarbe(2)=2
LET textfarbe(11)=11
LET textfarbe(15)=15
END SUB
SUB tauschinfo
LET ztext$(1)="TAGE TAUSCHEN"
LET ztext$(2)="------------------------------------"
LET ztext$(3)="ermöglicht es, die Gerichte von zwei"
LET ztext$(4)="Tagen auf dem Zettel zu vertauschen."
LET ztext$(6)="Die Bedienung ist folgende :"
LET ztext$(8)="Ersten Tag anklicken"
LET ztext$(9)="<Bestätigung> anklicken"
LET ztext$(10)="Zweiten Tag anklicken"
LET ztext$(11)="<Bestätigung> anklicken"
LET ztext$(13)="Um den Tausch vornehmen zu können"
LET ztext$(14)="muß nach diesem Hinweis nochmals"
LET ztext$(16)="<TAGE TAUSCHEN>"
LET ztext$(18)="angeklickt werden !"
LET ztext$(19)="------------------------------------"
LET textfarbe(1)=1
LET textfarbe(16)=16
END SUB
SUB bedienungeinkaufszettel
LET ztext$(1)="INFO ZUR EINKAUFSZETTELERSTELLUNG"
LET ztext$(2)="-----------------------------------"
LET ztext$(3)="Oberstes Feld:"
LET ztext$(4)="Vorschlagszeile (Zutaten gewählter"
LET ztext$(5)="Gerichte sind mit - gekennzeichnet)"
LET ztext$(6)="WARE EINTRAGEN:"
LET ztext$(7)="Vorschlag Übernehmen (max. 108 mal)"
LET ztext$(8)="NÄCHSTE WARE:"
LET ztext$(9)="Nächsten Warenvorschlag anzeigen"
LET ztext$(10)="EINTRAG PER HAND:"
LET ztext$(11)="Ware / Kommentar per Hand eingeben"
LET ztext$(12)="WEITERE ZETTELSEITE ZEIGEN:"
LET ztext$(13)="Die drei Zettelseiten durchblättern"
LET ztext$(14)="INFO ZUR ... :"
LET ztext$(15)="Infos zum jeweiligen Programmteil"
LET ztext$(16)="EINKAUFSZETTEL FERTIG:"
LET ztext$(17)="Wechsel zu Druckerausgabe,"
LET ztext$(18)="Neustart und Ende"
LET ztext$(19)="* * *"
LET textfarbe(3)=3
LET textfarbe(6)=6
LET textfarbe(8)=8
LET textfarbe(10)=10
LET textfarbe(12)=12
LET textfarbe(14)=14
LET textfarbe(16)=16
END SUB
SUB einkaufszettel1 ! Ausgabe in zwei Reihen
LET ztext$(1)="------ EINKAUFSZETTEL Seite 1 ------"
LET ztext$(2)=ware$(1)&repeat$(" ",19-len(ware$(1)))&ware$(19)&repeat$(" ",18-len(ware$(19)))
LET ztext$(3)=ware$(2)&repeat$(" ",19-len(ware$(2)))&ware$(20)&repeat$(" ",18-len(ware$(20)))
LET ztext$(4)=ware$(3)&repeat$(" ",19-len(ware$(3)))&ware$(21)&repeat$(" ",18-len(ware$(21)))
LET ztext$(5)=ware$(4)&repeat$(" ",19-len(ware$(4)))&ware$(22)&repeat$(" ",18-len(ware$(22)))
LET ztext$(6)=ware$(5)&repeat$(" ",19-len(ware$(5)))&ware$(23)&repeat$(" ",18-len(ware$(23)))
LET ztext$(7)=ware$(6)&repeat$(" ",19-len(ware$(6)))&ware$(24)&repeat$(" ",18-len(ware$(24)))
LET ztext$(8)=ware$(7)&repeat$(" ",19-len(ware$(7)))&ware$(25)&repeat$(" ",18-len(ware$(25)))
LET ztext$(9)=ware$(8)&repeat$(" ",19-len(ware$(8)))&ware$(26)&repeat$(" ",18-len(ware$(26)))
LET ztext$(10)=ware$(9)&repeat$(" ",19-len(ware$(9)))&ware$(27)&repeat$(" ",18-len(ware$(27)))
LET ztext$(11)=ware$(10)&repeat$(" ",19-len(ware$(10)))&ware$(28)&repeat$(" ",18-len(ware$(28)))
LET ztext$(12)=ware$(11)&repeat$(" ",19-len(ware$(11)))&ware$(29)&repeat$(" ",18-len(ware$(29)))
LET ztext$(13)=ware$(12)&repeat$(" ",19-len(ware$(12)))&ware$(30)&repeat$(" ",18-len(ware$(30)))
LET ztext$(14)=ware$(13)&repeat$(" ",19-len(ware$(13)))&ware$(31)&repeat$(" ",18-len(ware$(31)))
LET ztext$(15)=ware$(14)&repeat$(" ",19-len(ware$(14)))&ware$(32)&repeat$(" ",18-len(ware$(32)))
LET ztext$(16)=ware$(15)&repeat$(" ",19-len(ware$(15)))&ware$(33)&repeat$(" ",18-len(ware$(33)))
LET ztext$(17)=ware$(16)&repeat$(" ",19-len(ware$(16)))&ware$(34)&repeat$(" ",18-len(ware$(34)))
LET ztext$(18)=ware$(17)&repeat$(" ",19-len(ware$(17)))&ware$(35)&repeat$(" ",18-len(ware$(35)))
LET ztext$(19)=ware$(18)&repeat$(" ",19-len(ware$(18)))&ware$(36)&repeat$(" ",18-len(ware$(36)))
LET textfarbe(1)=1
END SUB
SUB einkaufszettel2 ! Ausgabe in zwei Reihen
LET ztext$(1)="------ EINKAUFSZETTEL Seite 2 ------"
LET ztext$(2)=ware$(37)&repeat$(" ",19-len(ware$(37)))&ware$(55)&repeat$(" ",18-len(ware$(55)))
LET ztext$(3)=ware$(38)&repeat$(" ",19-len(ware$(38)))&ware$(56)&repeat$(" ",18-len(ware$(56)))
LET ztext$(4)=ware$(39)&repeat$(" ",19-len(ware$(39)))&ware$(57)&repeat$(" ",18-len(ware$(57)))
LET ztext$(5)=ware$(40)&repeat$(" ",19-len(ware$(40)))&ware$(58)&repeat$(" ",18-len(ware$(58)))
LET ztext$(6)=ware$(41)&repeat$(" ",19-len(ware$(41)))&ware$(59)&repeat$(" ",18-len(ware$(59)))
LET ztext$(7)=ware$(42)&repeat$(" ",19-len(ware$(42)))&ware$(60)&repeat$(" ",18-len(ware$(60)))
LET ztext$(8)=ware$(43)&repeat$(" ",19-len(ware$(43)))&ware$(61)&repeat$(" ",18-len(ware$(61)))
LET ztext$(9)=ware$(44)&repeat$(" ",19-len(ware$(44)))&ware$(62)&repeat$(" ",18-len(ware$(62)))
LET ztext$(10)=ware$(45)&repeat$(" ",19-len(ware$(45)))&ware$(63)&repeat$(" ",18-len(ware$(63)))
LET ztext$(11)=ware$(46)&repeat$(" ",19-len(ware$(46)))&ware$(64)&repeat$(" ",18-len(ware$(64)))
LET ztext$(12)=ware$(47)&repeat$(" ",19-len(ware$(47)))&ware$(65)&repeat$(" ",18-len(ware$(65)))
LET ztext$(13)=ware$(48)&repeat$(" ",19-len(ware$(48)))&ware$(66)&repeat$(" ",18-len(ware$(66)))
LET ztext$(14)=ware$(49)&repeat$(" ",19-len(ware$(49)))&ware$(67)&repeat$(" ",18-len(ware$(67)))
LET ztext$(15)=ware$(50)&repeat$(" ",19-len(ware$(50)))&ware$(68)&repeat$(" ",18-len(ware$(68)))
LET ztext$(16)=ware$(51)&repeat$(" ",19-len(ware$(51)))&ware$(69)&repeat$(" ",18-len(ware$(69)))
LET ztext$(17)=ware$(52)&repeat$(" ",19-len(ware$(52)))&ware$(70)&repeat$(" ",18-len(ware$(70)))
LET ztext$(18)=ware$(53)&repeat$(" ",19-len(ware$(53)))&ware$(71)&repeat$(" ",18-len(ware$(71)))
LET ztext$(19)=ware$(54)&repeat$(" ",19-len(ware$(54)))&ware$(72)&repeat$(" ",18-len(ware$(72)))
LET textfarbe(1)=1
END SUB
SUB einkaufszettel3 ! Ausgabe in zwei Reihen
LET ztext$(1)="------ EINKAUFSZETTEL Seite 3 ------"
LET ztext$(2)=ware$(73)&repeat$(" ",19-len(ware$(73)))&ware$(91)&repeat$(" ",18-len(ware$(91)))
LET ztext$(3)=ware$(74)&repeat$(" ",19-len(ware$(74)))&ware$(92)&repeat$(" ",18-len(ware$(92)))
LET ztext$(4)=ware$(75)&repeat$(" ",19-len(ware$(75)))&ware$(93)&repeat$(" ",18-len(ware$(93)))
LET ztext$(5)=ware$(76)&repeat$(" ",19-len(ware$(76)))&ware$(94)&repeat$(" ",18-len(ware$(94)))
LET ztext$(6)=ware$(77)&repeat$(" ",19-len(ware$(77)))&ware$(95)&repeat$(" ",18-len(ware$(95)))
LET ztext$(7)=ware$(78)&repeat$(" ",19-len(ware$(78)))&ware$(96)&repeat$(" ",18-len(ware$(96)))
LET ztext$(8)=ware$(79)&repeat$(" ",19-len(ware$(79)))&ware$(97)&repeat$(" ",18-len(ware$(97)))
LET ztext$(9)=ware$(80)&repeat$(" ",19-len(ware$(80)))&ware$(98)&repeat$(" ",18-len(ware$(98)))
LET ztext$(10)=ware$(81)&repeat$(" ",19-len(ware$(81)))&ware$(99)&repeat$(" ",18-len(ware$(99)))
LET ztext$(11)=ware$(82)&repeat$(" ",19-len(ware$(82)))&ware$(100)&repeat$(" ",18-len(ware$(100)))
LET ztext$(12)=ware$(83)&repeat$(" ",19-len(ware$(83)))&ware$(101)&repeat$(" ",18-len(ware$(101)))
LET ztext$(13)=ware$(84)&repeat$(" ",19-len(ware$(84)))&ware$(102)&repeat$(" ",18-len(ware$(102)))
LET ztext$(14)=ware$(85)&repeat$(" ",19-len(ware$(85)))&ware$(103)&repeat$(" ",18-len(ware$(103)))
LET ztext$(15)=ware$(86)&repeat$(" ",19-len(ware$(86)))&ware$(104)&repeat$(" ",18-len(ware$(104)))
LET ztext$(16)=ware$(87)&repeat$(" ",19-len(ware$(87)))&ware$(105)&repeat$(" ",18-len(ware$(105)))
LET ztext$(17)=ware$(88)&repeat$(" ",19-len(ware$(88)))&ware$(106)&repeat$(" ",18-len(ware$(106)))
LET ztext$(18)=ware$(89)&repeat$(" ",19-len(ware$(89)))&ware$(107)&repeat$(" ",18-len(ware$(107)))
LET ztext$(19)=ware$(90)&repeat$(" ",19-len(ware$(90)))&ware$(108)&repeat$(" ",18-len(ware$(108)))
LET textfarbe(1)=1
END SUB
SUB einkaufszettelvoll
LET ztext$(2)="Alle drei Seiten des"
LET ztext$(3)="Einkaufszettels sind mit"
LET ztext$(4)="108 Einkaufswaren gefÜllt !"
LET ztext$(6)="Jetzt bitte erst ausdrucken mit"
LET ztext$(8)="<EINKAUFSZETTEL FERTIG>"
LET ztext$(10)="<DRUCKEN>"
LET ztext$(12)="Danach weitere Einkaufszettel"
LET ztext$(13)="wenn erforderlich mit"
LET ztext$(15)="<NEUSTART>"
LET ztext$(17)="erstellen."
LET textfarbe(8)=8
LET textfarbe(10)=10
LET textfarbe(15)=15
END SUB
SUB vorschlagsende
LET ztext$(5)="Die Liste der"
LET ztext$(7)="Warenvorschläge"
LET ztext$(9)="ist erschöpft !"
LET ztext$(12)="Jetzt sind nur noch"
LET ztext$(14)="Einträge per Hand"
LET ztext$(16)="möglich."
LET textfarbe(14)=14
END SUB
SUB druckervorbereiten
LET ztext$(1)="WICHTIG !"
LET ztext$(2)="-----------------------------------"
LET ztext$(4)="Jetzt können KÜchen- und Einkaufs-"
LET ztext$(5)="zettel auf den Drucker ausgegeben"
LET ztext$(6)="werden."
LET ztext$(8)="Dazu bitte Papier einlegen, Druck-"
LET ztext$(9)="qualität und Schriftart wählen und"
LET ztext$(10)="den Drucker auf"
LET ztext$(12)="`ON LINE`"
LET ztext$(14)="schalten ! Dann auf"
LET ztext$(16)="<ALLE ZETTEL DRUCKEN>"
LET ztext$(18)="klicken."
LET textfarbe(1)=1
LET textfarbe(12)=12
LET textfarbe(16)=16
END SUB
SUB bedienungausgabe
LET ztext$(1)="INFORMATION"
LET ztext$(2)="-----------------------------------"
LET ztext$(3)="ALLE ZETTEL DRUCKEN:"
LET ztext$(4)="KÜchen- und Einkaufszettel drucken"
LET ztext$(6)="ALLE ZETTEL DURCHBLÄTTERN:"
LET ztext$(7)="KÜchen- und Einkaufszettel werden"
LET ztext$(8)="nacheinander gezeigt"
LET ztext$(10)="INFORMATION:"
LET ztext$(11)="Diese gezeigte Seite"
LET ztext$(13)="NEUSTART:"
LET ztext$(14)="Ö-K-O beginnt von vorn"
LET ztext$(16)="ENDE:"
LET ztext$(17)="Ö-K-O wird beendet"
LET ztext$(19)="* * *"
LET textfarbe(3)=3
LET textfarbe(6)=6
LET textfarbe(10)=10
LET textfarbe(13)=13
LET textfarbe(16)=16
END SUB
SUB erstdrucken
LET ztext$(4)="A C H T U N G"
LET ztext$(5)="*****************"
LET ztext$(7)="KÜchen- und Einkaufszettel"
LET ztext$(8)="sind noch nicht ausgedruckt"
LET ztext$(9)="und bei <NEUSTART> und <ENDE>"
LET ztext$(10)="verloren !!!"
LET ztext$(12)="Bitte erst ausdrucken !"
LET ztext$(14)="Wenn kein Ausdruck gewÜnscht,"
LET ztext$(15)="dann nochmals auf <NEUSTART>"
LET ztext$(16)="oder <ENDE> klicken."
LET textfarbe(4)=4
LET textfarbe(12)=12
END SUB
SUB wartendruck
LET ztext$(8)="Moment bitte,"
LET ztext$(10)="Druckerausgabe"
LET ztext$(12)="beginnt !"
LET textfarbe(10)=10
END SUB
SUB druckfertig
LET ztext$(1)="Druckerausgabe beendet"
LET ztext$(2)="-----------------------------------"
LET ztext$(3)="Die Zettel können bei Bedarf noch"
LET ztext$(4)="mehrmals gedruckt werden. Wieder"
LET ztext$(5)="Papier einlegen, Druckqualität und"
LET ztext$(6)="Schriftart wählen und den Drucker"
LET ztext$(8)="`ON LINE`"
LET ztext$(10)="schalten ! Dann auf"
LET ztext$(12)="<ALLE ZETTEL DRUCKEN>"
LET ztext$(14)="klicken. Sonst bitte"
LET ztext$(16)="<NEUSTART> oder <ENDE>"
LET ztext$(18)="wählen."
LET textfarbe(1)=1
LET textfarbe(8)=8
LET textfarbe(12)=12
LET textfarbe(16)=16
END SUB
SUB byebye
LET ztext$(7)="Ö-K-O wÜnscht guten Appetit !"
LET ztext$(11)="Auf Wiedersehen nächste Woche !"
LET ztext$(18)="1989 N.Ellert, 3208 Giesen"
LET textfarbe(7)=7
LET textfarbe(11)=11
END SUB
! ------------------------ Textzuweisungen fÜr Felder --------------------
SUB modimidofrsaso
LET tagtext$(1)="SA"
LET tagtext$(2)="SO"
LET tagtext$(3)="MO"
LET tagtext$(4)="DI"
LET tagtext$(5)="MI"
LET tagtext$(6)="DO"
LET tagtext$(7)="FR"
END SUB
SUB startinfo
LET ftext$(3)="START"
LET ftext$(6)="WARUM GIBT ES Ö-K-O ?"
LET textfarbe(3)=3
LET textfarbe(6)=6
END SUB
SUB menueauswahl
LET ftext$(2)="GERICHT EINTRAGEN"
LET ftext$(3)="NEUER VORSCHLAG"
LET ftext$(4)="EINTRAG PER HAND"
LET ftext$(5)="TAGE TAUSCHEN"
LET ftext$(6)="INFO ZUR KÜCHENZETTELERSTELLUNG"
LET ftext$(7)="KÜCHENZETTEL FERTIG"
END SUB
SUB einkaufswahl
LET ftext$(2)="WARE EINTRAGEN"
LET ftext$(3)="NÄCHSTE WARE"
LET ftext$(4)="EINTRAG PER HAND"
LET ftext$(5)="WEITERE ZETTELSEITE ZEIGEN"
LET ftext$(7)="INFO ZUR EINKAUFSZETTELERSTELLUNG"
LET ftext$(8)="EINKAUFSZETTEL FERTIG"
END SUB
SUB zettelschluss
LET ftext$(5)="WEITERE ZETTELSEITE ZEIGEN"
LET ftext$(7)="INFO ZUR EINKAUFSZETTELERSTELLUNG"
LET ftext$(8)="EINKAUFSZETTEL FERTIG"
LET textfarbe(8)=8
END SUB
SUB tastatur
IF progteil=0 then ! KÜchenzettel
LET ftext$(1)="Bitte Gericht per Tastatur eingeben"
ELSEIF progteil=1 then ! Einkaufszettel
LET ftext$(1)="Bitte Ware per Tastatur eingeben"
END IF
LET textfarbe(1)=1
END SUB
SUB tagetauschen
LET ftext$(1)=""
LET ftext$(2)="ABBRUCH"
LET ftext$(5)="BESTÄTIGUNG"
LET textfarbe(5)=5
END SUB
SUB ausgabe
LET ftext$(1)="ALLE ZETTEL DRUCKEN"
LET ftext$(3)="ALLE ZETTEL DURCHBLÄTTERN"
LET ftext$(5)="INFORMATION"
LET ftext$(7)="NEUSTART"
LET ftext$(8)="ENDE"
END SUB
SUB ok
LET ftext$(1)="OK"
LET textfarbe(1)=1
END SUB
!------------------------ Hauptprogramm ----------------------------------
CALL programmanfang ! Initialisierungen
CALL programmhauptteil ! Hauptschleife
CALL programmschluss ! Aufräumen
END